home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / Draw / Sources / DrawFrm.h < prev    next >
Encoding:
Text File  |  1996-08-16  |  6.9 KB  |  208 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                DrawFrm.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Author:                Henri Lamiraux
  7. //
  8. //    Copyright:            (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  9. //
  10. //========================================================================================
  11.  
  12. #ifndef DRAWFRM_H
  13. #define DRAWFRM_H
  14.  
  15. // ----- Part Layer -----
  16.  
  17. #ifndef FWFRMING_H
  18. #include "FWFrming.h"
  19. #endif
  20.  
  21. #ifndef FWDRGDRP_H
  22. #include "FWDrgDrp.h"
  23. #endif
  24.  
  25. //========================================================================================
  26. // Forward Declaration
  27. //========================================================================================
  28.  
  29. class FW_CPresentation;
  30. class FW_CGrowBox;
  31. class CDrawPart;
  32. class CDrawSelection;
  33. class CRuler;
  34.  
  35. //========================================================================================
  36. // CDrawFrame
  37. //========================================================================================
  38.  
  39. class CDrawFrame : public FW_CEmbeddingFrame, public FW_MDraggableFrame, public FW_MDroppableFrame
  40. {
  41. public:
  42.     FW_DECLARE_CLASS
  43.     FW_DECLARE_AUTO(CDrawFrame)
  44.  
  45. //----------------------------------------------------------------------------------------
  46. // Initialization/destruction
  47. //
  48. public:        
  49.     CDrawFrame(Environment *ev, 
  50.                 ODFrame* odFrame, 
  51.                 FW_CPresentation* presentation, 
  52.                 CDrawPart* drawPart,
  53.                 FW_ResourceId id = 0);
  54.     virtual ~ CDrawFrame();
  55.  
  56. //----------------------------------------------------------------------------------------
  57. // Inherited API
  58. //
  59. public:        
  60.  
  61.     // ----- Menu
  62.     virtual FW_Boolean                DoAdjustMenus(Environment *ev, FW_CMenuBar* menuBar, FW_Boolean hasMenuFocus, FW_Boolean isRoot);
  63.     virtual FW_Boolean                DoMenu(Environment* ev, const FW_CMenuEvent& theMenuEvent);
  64.     
  65.     // ----- Drag and Drop
  66.     virtual ODDragResult            CanAcceptDrop(Environment *ev, ODDragItemIterator* dragInfo);
  67.  
  68.     // ----- Events -----
  69.     virtual void                    DoActivateEvent(Environment* ev, const FW_CActivateEvent& theActivateEvent);
  70.  
  71.     // ----- Embedded Mouse Events -----
  72.     virtual FW_Boolean                DoMouseDownInEmbeddedFrameBorder(Environment *ev, 
  73.                                                 const FW_CBorderMouseEvent& theBorderMouseEvent);
  74.     virtual FW_Boolean                DoMouseDownInEmbeddedFrame(Environment* ev, 
  75.                                                 const FW_CEmbeddedMouseEvent& theEmbeddedMouseEvent);
  76.  
  77.     // ----- Embedding -----
  78.     virtual ODFacet*                CreateEmbeddedFacet(Environment* ev,
  79.                                             ODFacet* embeddingFacet,
  80.                                             FW_MProxy* proxy,
  81.                                             ODFrame* embeddedFrame,
  82.                                             ODShape* proposedClipShape);
  83.     
  84.     virtual FW_MProxy*                EmbeddedFrameRequested(Environment *ev,
  85.                                             FW_MProxy* baseProxy,
  86.                                             ODFrame* baseFrame,
  87.                                             ODShape* frameShape,
  88.                                             ODPart* embedPart,
  89.                                             ODTypeToken viewType,
  90.                                             ODTypeToken presentation,
  91.                                             ODID frameGroupID,
  92.                                             FW_Boolean isOverlaid,
  93.                                             FW_Boolean isSubFrame);
  94.                                             
  95.     // ----- Frame activation -----                                    
  96.     virtual void                    FocusStateChanged(Environment *ev, 
  97.                                             ODTypeToken focus, 
  98.                                             FW_Boolean newState, 
  99.                                             ODFrame* newOwner);
  100.  
  101.     // ----- Geometry -----                                    
  102.     virtual void                    GeometryChanged(Environment *ev,
  103.                                             ODFacet* odFacet,
  104.                                             FW_Boolean clipShapeChanged,
  105.                                             FW_Boolean externalTransformChanged);
  106.                                                                                         
  107.     // ----- Window Size ------
  108.     virtual void                    AdjustZoomedWindowSize(Environment* ev, FW_CPoint& proposedSize);
  109.     virtual void                    AdjustWindowGrowLimits(Environment* ev, FW_CPoint& minSize, FW_CPoint& maxSize);
  110.     
  111.     // ----- Commands Factory -----
  112.     virtual FW_CClipboardCommand*     NewClipboardCommand(Environment* ev, ODCommandID commandID);
  113.     virtual FW_CInsertCommand*         NewInsertCommand(Environment* ev, const FW_PFileSpecification& fileSpec);
  114.     virtual FW_CDragCommand*         NewDragCommand(Environment *ev, 
  115.                                                 FW_CFrame* theFrame,
  116.                                                 const FW_CMouseEvent& theMouseEvent);
  117.     virtual FW_CDropCommand*        NewDropCommand(Environment *ev, FW_CFrame* frame,
  118.                                                 ODDragItemIterator* dropInfo, 
  119.                                                 ODFacet* facet, const FW_CPoint& windowPoint);
  120.                                                 
  121.     // ----- Printing ------
  122.     virtual FW_CPrintHandler*        NewPrintHandler(Environment* ev);
  123.  
  124.     // ----- Drawing ------
  125.     virtual void                     Draw(Environment *ev, ODFacet* odFacet, ODShape* invalidShape);
  126.  
  127.     // ----- Miscellaneous -----
  128.     virtual void                    FacetAdded(Environment* ev, ODFacet* facet, unsigned short facetCount);
  129.  
  130.     virtual FW_Boolean                RevealFrame(Environment *ev, 
  131.                                         ODFrame* embeddedFrame, 
  132.                                         ODShape* revealShape);
  133.  
  134.     // ----- Internalize/Externalize -----
  135.     virtual void                    ExternalizeFrame(Environment* ev, ODStorageUnitView* storageUnitView);
  136.     virtual void                    InternalizeFrame(Environment* ev, ODStorageUnitView* storageUnitView);
  137.     
  138.     // ----- Creation of Views from Streams
  139.     virtual void                    PostCreateViewFromStream(Environment* ev);
  140. //    virtual void                    CreateSubViews(Environment* ev);
  141.     
  142. //----------------------------------------------------------------------------------------
  143. //    New API
  144. //
  145. public:
  146.     CDrawSelection*            GetSelection(Environment *ev) const;
  147.     FW_Fixed                GetZoomFactor(Environment *ev) const;
  148.     void                    ToggleRulers(Environment *ev, FW_Boolean visible, FW_Boolean refresh);
  149.  
  150.     FW_Boolean                IsGraphicsGridOn() const;
  151.     FW_Boolean                AreRulersOn() const;
  152.     
  153.     FW_Boolean                IsInLinkDestination(Environment* ev);
  154.  
  155.     void                    ChangeZoomFactor(Environment* ev, FW_Fixed zoomFactor);
  156.  
  157.     FW_CRect                GetContentRect(Environment* ev) const;
  158.     void                    AdjustContentViewSize(Environment* ev, FW_Boolean refresh);
  159.  
  160. //----------------------------------------------------------------------------------------
  161. // Data Members
  162. //
  163. private:    
  164.     CDrawPart*                fDrawPart;
  165.     CDrawSelection*            fSelection;
  166.     
  167.     CRuler*                    fHorzRuler;
  168.     CRuler*                    fVertRuler;
  169.     
  170.     FW_Boolean                fGridShown;
  171.     FW_Boolean                fRulersShown;
  172.     FW_Fixed                fZoomFactor;
  173. };
  174.  
  175. //----------------------------------------------------------------------------------------
  176. //    CDrawFrame::GetZoomFactor
  177. //----------------------------------------------------------------------------------------
  178. inline FW_Fixed    CDrawFrame::GetZoomFactor(Environment *ev) const 
  179. {
  180.     return fZoomFactor;
  181. }
  182.  
  183. //----------------------------------------------------------------------------------------
  184. //    CDrawFrame::GetSelection
  185. //----------------------------------------------------------------------------------------
  186. inline CDrawSelection*    CDrawFrame::GetSelection(Environment *ev) const
  187. {
  188.     return fSelection;
  189. }
  190.  
  191. //----------------------------------------------------------------------------------------
  192. //    CDrawFrame::IsGraphicsGridOn
  193. //----------------------------------------------------------------------------------------
  194. inline FW_Boolean CDrawFrame::IsGraphicsGridOn() const
  195. {
  196.     return fGridShown;
  197. }
  198.  
  199. //----------------------------------------------------------------------------------------
  200. //    CDrawFrame::AreRulersOn
  201. //----------------------------------------------------------------------------------------
  202. inline FW_Boolean CDrawFrame::AreRulersOn() const
  203. {
  204.     return fRulersShown;
  205. }
  206.  
  207. #endif
  208.